home *** CD-ROM | disk | FTP | other *** search
- % control procedure definitions
- % these procedures are not defined when printing
-
- % drawing the controlpoints & the selected one (bsz=controlpt size, bszh=bsz/2)
- /gencontrol {
- 0 0 0 setrgbcolor
- 0 1 nctrl 1 sub { /i exch def
- ctrl i 2 mul get bszh sub ctrl i 2 mul 1 add get bszh sub
- bsz bsz rectfill
- } for
- cctrl 0 ge {
- cctrl nctrl lt {
- 1 0 0 setrgbcolor
- ctrl cctrl 2 mul get bsz sub ctrl cctrl 2 mul 1 add get bsz bsz rectfill
- } if
- } if
- } def
- % test whether controlpoint has been selected
- /genselpt {
- -1
- 0 1 nctrl 1 sub { /i exch def
- ctrl i 2 mul get ctrl i 2 mul 1 add get bsz 0 360 arc closepath mmx mmy infill { newpath pop i exit } if
- newpath } for
- } def
- % test whether filled path has been selected
- /gsel {
- newpath cp
- mmx mmy infill
- newpath
- } def
- % test whether stroked path has been selected
- /gstsel {
- newpath cp linw 3 gt { linw setlinewidth } { 4 setlinewidth } ifelse
- mmx mmy instroke
- newpath
- } def
-
- % control hull drawing procedures for all path types
- /circlecontrol { gencontrol } def
- /charPcontrol { gencontrol } def
- /funcPcontrol { gencontrol 0 setgray 0 setlinewidth
- nctrl 2 ge {
- /ox ctrl 0 get def /oy ctrl 1 get def
- /px ctrl 2 get def /py ctrl 3 get def
- ox oy moveto ox py lineto stroke
- px oy moveto px py lineto stroke
- (Helvetica) findfont 10 scalefont setfont
- ox 5 add oy moveto (Region Left Border) show
- px 5 add py moveto (Region Right Border) show
- nctrl 3 ge {
- ctrl 4 get 5 add ctrl 5 get moveto (Origin) show
- nctrl 4 ge {
- ctrl 6 get 5 add ctrl 7 get moveto (Point [1,1]) show
- } if
- } if
- } if
- } def
- /hermitecontrol {
- .5 setgray
- 0 setlinewidth
- 0 2 nctrl 2 sub{ /i exch 2 mul def
- ctrl i get ctrl i 1 add get moveto
- ctrl i 2 add get ctrl i 3 add get lineto stroke
- } for
- gencontrol
- } def
- /hermiteOcontrol {
- hermitecontrol
- } def
-
- % Bezier curve (2 rulers per point)
-
- /beziercontrol {
- nctrl 3 div cvi 3 mul nctrl eq {
- .5 setgray
- 0 setlinewidth
- ctrl nctrl 1 sub 2 mul get ctrl nctrl 1 sub 2 mul 1 add get moveto
- ctrl 0 get ctrl 1 get lineto stroke
- } if
- bezierOcontrol
- } def
-
- /bezierOcontrol {
- .5 setgray
- 0 setlinewidth
- 0 3 nctrl 4 sub { /i exch 2 mul def
- ctrl i get ctrl i 1 add get moveto
- ctrl i 2 add get ctrl i 3 add get lineto
- ctrl i 4 add get ctrl i 5 add get moveto
- ctrl i 6 add get ctrl i 7 add get lineto
- stroke
- } for
- nctrl 1 sub 3 div cvi 3 mul 1 add nctrl ne {
- /N nctrl 1 sub 3 div cvi 3 mul def
- ctrl N 2 mul get ctrl N 2 mul 1 add get moveto
- ctrl N 2 mul 2 add get ctrl N 2 mul 3 add get lineto stroke
- } if
- gencontrol
- } def
-
- /rectcontrol { gencontrol } def
- /rectwincontrol { gencontrol } def
- /polygoncontrol { gencontrol } def
- /polygonOcontrol { gencontrol } def
- /arcPcontrol { gencontrol } def
- /arcPOcontrol { gencontrol } def
- /rrectcontrol { gencontrol } def
- /drawFSSel { gsel } def
- /drawSSel { gstsel } def
- /drawFSel { gsel } def
- /draw3DSel { gsel } def
- /draw3DShadowSel { gsel } def
- /drawFSShadowSel { gsel } def
- /drawSShadowSel { gstsel } def
- /drawFShadowSel { gsel } def
- /drawVSel { gsel } def
- /drawVDSel { gsel } def
- /drawVSSel { gsel } def
- /drawV3DSel { gsel } def
- /drawV3D2Sel { gsel } def
- /drawN3DSel { gsel } def
- /drawSFSel { gsel } def
-
-